//Camera.h
#ifndef _CAMERA_H_
    #define _CAMERA_H_

#include <SDL/SDL.h>

#include "../Define.h"


//Camera class used to define camera view and controls


class Camera {
	public:
//CameraControl is a Camera variable that is used to set
//positions, move, and determine positions of the camera
		static Camera CameraControl;

//TargetMode either has the value of TARGET_MODE_CENTER
//or TARGET_MODE_NORMAL, which decideds what the camera follows
		int TargetMode;

//No argument Camera constructor
		Camera();

//When OnMove is called the camera moves to the new coordinates
//MoveX and MoveY are the new x,y coordinates of the camera
        void OnMove(int MoveX, int MoveY);

//Returns an int which is the camera's current x coordinate
		int GetX();

//Returns an int which is the camera's current y coordinate
		int GetY();

//Sets the position of the camera
//ints X and Y are the new x,y coordinates
		void SetPos(int X, int Y);

//Sets the camera to a new target
//float*s are the x,y of the new target
		void SetTarget(float* X, float* Y);

    private:
		int X;

		int Y;

		float* TargetX;
		float* TargetY;



};


enum {
	TARGET_MODE_NORMAL = 0,
	TARGET_MODE_CENTER
};

#endif
